package com.itheima.mapper;

import com.itheima.pojo.Emp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.Date;
import java.util.List;

/**
 * 员工管理
 */
@Mapper
public interface EmpMapper {

    //求一共有多少条数据
    @Select("select count(0) from emp")
    public Integer count();

    //求指定页的数据
    /* 分页查询:limit结果限制关键字
    select  字段列表  from   表名  limit  起始索引, 查询记录数 ;

    select * from tableName limit (pageNum-1)*pageSize,pageSize;

    注意:
    1.起始索引从0开始，起始索引 = （查询页码pageNum - 1）* 每页显示记录数pageSize。
    2.分页查询是数据库的方言，不同的数据库有不同的实现，MySQL中是LIMIT。
    3.如果查询的是第一页数据，起始索引可以省略，直接简写为 limit 10。*/
    @Select("select * from emp limit #{start},#{pageSize}")
    public List<Emp> page(Integer start, Integer pageSize);


    //查询所有
    @Select("select * from emp")
    public List<Emp> list();

    //带条件查询所有
    //在EmpMapper.xml中写要执行的动态SQL语句
    List<Emp> listWithCondition(@Param("emp") Emp conditionEmp, @Param("begin") Date begin, @Param("end") Date end);/*使用@Param("XXX")注解给形参起别名,用于对应EmpMapper.xml的SQL语句中的占位符#{XXX}*/


    void delete(List<Integer> ids);
}
